home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Magazin: Amiga-CD 1996 March
/
Amiga-CD 1996 #3.iso
/
amiga_technologies
/
include_i
/
intuition
/
gadgetclass.i
< prev
next >
Wrap
Text File
|
1996-01-19
|
10KB
|
320 lines
IFND INTUITION_GADGETCLASS_I
INTUITION_GADGETCLASS_I SET 1
**
** $VER: gadgetclass.i 38.9 (8.1.93)
** Includes Release 40.16
**
** Custom and 'boopsi' gadget class interface
**
** (C) Copyright 1989-1995 ESCOM AG
** All Rights Reserved
**
IFND EXEC_TYPES_I
INCLUDE "exec/types.i"
ENDC
IFND INTUITION_INTUITION_I
INCLUDE "intuition/intuition.i"
ENDC
IFND UTILITY_TAGITEM_I
INCLUDE "utility/tagitem.i"
ENDC
*
* NOTE: intuition/iobsolete.i is included at the END of this file!
*
; Gadget Class attributes
GA_Dummy EQU (TAG_USER+$30000)
GA_Left EQU (GA_Dummy+$0001)
GA_RelRight EQU (GA_Dummy+$0002)
GA_Top EQU (GA_Dummy+$0003)
GA_RelBottom EQU (GA_Dummy+$0004)
GA_Width EQU (GA_Dummy+$0005)
GA_RelWidth EQU (GA_Dummy+$0006)
GA_Height EQU (GA_Dummy+$0007)
GA_RelHeight EQU (GA_Dummy+$0008)
GA_Text EQU (GA_Dummy+$0009) ; ti_Data is (UBYTE *)
GA_Image EQU (GA_Dummy+$000A)
GA_Border EQU (GA_Dummy+$000B)
GA_SelectRender EQU (GA_Dummy+$000C)
GA_Highlight EQU (GA_Dummy+$000D)
GA_Disabled EQU (GA_Dummy+$000E)
GA_GZZGadget EQU (GA_Dummy+$000F)
GA_ID EQU (GA_Dummy+$0010)
GA_UserData EQU (GA_Dummy+$0011)
GA_SpecialInfo EQU (GA_Dummy+$0012)
GA_Selected EQU (GA_Dummy+$0013)
GA_EndGadget EQU (GA_Dummy+$0014)
GA_Immediate EQU (GA_Dummy+$0015)
GA_RelVerify EQU (GA_Dummy+$0016)
GA_FollowMouse EQU (GA_Dummy+$0017)
GA_RightBorder EQU (GA_Dummy+$0018)
GA_LeftBorder EQU (GA_Dummy+$0019)
GA_TopBorder EQU (GA_Dummy+$001A)
GA_BottomBorder EQU (GA_Dummy+$001B)
GA_ToggleSelect EQU (GA_Dummy+$001C)
* internal use only, until further notice, please
GA_SysGadget EQU (GA_Dummy+$001D)
* bool, sets GTYP_SYSGADGET field in type
GA_SysGType EQU (GA_Dummy+$001E)
* e.g., GTYP_WUPFRONT, ...
GA_Previous EQU (GA_Dummy+$001F)
* previous gadget (or (struct Gadget **)) in linked list
* NOTE: This attribute CANNOT be used to link new gadgets
* into the gadget list of an open window or requester.
* You must use AddGList().
GA_Next EQU (GA_Dummy+$0020)
* not implemented
GA_DrawInfo EQU (GA_Dummy+$0021)
* some fancy gadgets need to see a DrawInfo
* when created or for layout
* You should use at most ONE of GA_Text, GA_IntuiText, and GA_LabelImage
GA_IntuiText EQU (GA_Dummy+$0022)
* ti_Data is (struct IntuiText *)
GA_LabelImage EQU (GA_Dummy+$0023)
* ti_Data is an image (object), used in place of
* GadgetText
GA_TabCycle EQU (GA_Dummy+$0024)
* New for V37:
* Boolean indicates that this gadget is to participate in
* cycling activation with Tab or Shift-Tab.
GA_GadgetHelp EQU (GA_Dummy+$0025)
* New for V39:
* Boolean indicates that this gadget sends gadget-help
GA_Bounds EQU (GA_Dummy+$0026)
* New for V39:
* ti_Data is a pointer to an IBox structure which is
* to be copied into the extended gadget's bounds.
GA_RelSpecial EQU (GA_Dummy+$0027)
* New for V39:
* Boolean indicates that this gadget has the "special relativity"
* property, which is useful for certain fancy relativity
* operations through the GM_LAYOUT method.
* PROPGCLASS attributes
PGA_Dummy EQU (TAG_USER+$31000)
PGA_Freedom EQU (PGA_Dummy+$0001)
* either or both of FREEVERT and FREEHORIZ
PGA_Borderless EQU (PGA_Dummy+$0002)
PGA_HorizPot EQU (PGA_Dummy+$0003)
PGA_HorizBody EQU (PGA_Dummy+$0004)
PGA_VertPot EQU (PGA_Dummy+$0005)
PGA_VertBody EQU (PGA_Dummy+$0006)
PGA_Total EQU (PGA_Dummy+$0007)
PGA_Visible EQU (PGA_Dummy+$0008)
PGA_Top EQU (PGA_Dummy+$0009)
; New for V37:
PGA_NewLook EQU (PGA_Dummy+$000A)
* STRGCLASS attributes
STRINGA_Dummy EQU (TAG_USER+$32000)
STRINGA_MaxChars EQU (STRINGA_Dummy+$0001)
* Note: There is a minor problem with Intuition when using boopsi integer
* gadgets (which are requested by using STRINGA_LongInt). Such gadgets
* must not have a STRINGA_MaxChars to be bigger than 15. Setting
* STRINGA_MaxChars for a boopsi integer gadget will cause a mismatched
* FreeMem() to occur.
STRINGA_Buffer EQU (STRINGA_Dummy+$0002)
STRINGA_UndoBuffer EQU (STRINGA_Dummy+$0003)
STRINGA_WorkBuffer EQU (STRINGA_Dummy+$0004)
STRINGA_BufferPos EQU (STRINGA_Dummy+$0005)
STRINGA_DispPos EQU (STRINGA_Dummy+$0006)
STRINGA_AltKeyMap EQU (STRINGA_Dummy+$0007)
STRINGA_Font EQU (STRINGA_Dummy+$0008)
STRINGA_Pens EQU (STRINGA_Dummy+$0009)
STRINGA_ActivePens EQU (STRINGA_Dummy+$000A)
STRINGA_EditHook EQU (STRINGA_Dummy+$000B)
STRINGA_EditModes EQU (STRINGA_Dummy+$000C)
* booleans
STRINGA_ReplaceMode EQU (STRINGA_Dummy+$000D)
STRINGA_FixedFieldMode EQU (STRINGA_Dummy+$000E)
STRINGA_NoFilterMode EQU (STRINGA_Dummy+$000F)
STRINGA_Justification EQU (STRINGA_Dummy+$0010)
* GACT_STRINGCENTER, GACT_STRINGLEFT, GACT_STRINGRIGHT
STRINGA_LongVal EQU (STRINGA_Dummy+$0011)
STRINGA_TextVal EQU (STRINGA_Dummy+$0012)
STRINGA_ExitHelp EQU (STRINGA_Dummy+$0013)
* STRINGA_ExitHelp is new for V37, and ignored by V36.
* Set this if you want the gadget to exit when Help is
* pressed. Look for a code of 0x5F, the rawkey code for Help
SG_DEFAULTMAXCHARS EQU (128)
* Gadget Layout related attributes
LAYOUTA_Dummy EQU (TAG_USER+$38000)
LAYOUTA_LayoutObj EQU (LAYOUTA_Dummy+$0001)
LAYOUTA_Spacing EQU (LAYOUTA_Dummy+$0002)
LAYOUTA_Orientation EQU (LAYOUTA_Dummy+$0003)
* orientation values
LORIENT_NONE EQU 0
LORIENT_HORIZ EQU 1
LORIENT_VERT EQU 2
; Custom gadget hook command ID's
; (gadget class method/message ID's)
GM_HITTEST EQU 0 ; return GMR_GADGETHIT if you are clicked
; (whether or not you are disabled)
GM_RENDER EQU 1 ; draw yourself, in the appropriate state
GM_GOACTIVE EQU 2 ; you are now going to be fed input
GM_HANDLEINPUT EQU 3 ; handle that input
GM_GOINACTIVE EQU 4 ; whether or not by choice, you are done
GM_HELPTEST EQU 5 ; Will you send gadget help if the mouse is
; at the specified coordinates? See below
; for possible GMR_ values.
GM_LAYOUT EQU 6 ; re-evaluate your size based on the GadgetInfo
; Domain. Do NOT re-render yourself yet, you
; will be called when it is time...
; Parameter "Messages" passed to gadget class methods
; All parameter structure begin with a MethodID field
; This definition of an abstract generic "message" is
; equivalent to a better one in intuition/classusr.i, but
; it's left here for historic reasons
STRUCTURE MsgHeader,0
ULONG MethodID
LABEL methodid_SIZEOF
; GM_HITTEST and GM_HELPTEST send this message.
; For GM_HITTEST, gpht_Mouse are coordinates relative to the gadget
; select box. For GM_HELPTEST, the coordinates are relative to
; the gadget bounding box (which defaults to the select box).
STRUCTURE gpHitTest,methodid_SIZEOF
APTR gpht_GInfo
WORD gpht_MouseX
WORD gpht_MouseY
; For GM_HITTEST, return GMR_GADGETHIT if you were indeed hit,
; otherwise return zero.
;
; For GM_HELPTEST, return GMR_NOHELPHIT (zero) if you were not hit.
; Typically, return GMR_HELPHIT if you were hit.
; It is possible to pass a UWORD to the application via the Code field
; of the IDCMP_GADGETHELP message. Return GMR_HELPCODE or'd with
; the UWORD-sized result you wish to return.
;
; GMR_HELPHIT yields a Code value of ((UWORD) ~0), which should
; mean "nothing particular" to the application.
GMR_GADGETHIT EQU $00000004 ; GM_HITTEST hit
GMR_NOHELPHIT EQU $00000000 ; GM_HELPTEST didn't hit
GMR_HELPHIT EQU $FFFFFFFF ; GM_HELPTEST hit, return code = ~0
GMR_HELPCODE EQU $00010000 ; GM_HELPTEST hit, return low word as code
; GM_RENDER
STRUCTURE gpRender,methodid_SIZEOF
APTR gpr_GInfo ; gadget context
APTR gpr_RPort ; all ready for use
LONG gpr_Redraw ; might be a "highlight pass"
; values of gpr_Redraw
GREDRAW_UPDATE EQU 2 ; update for change in attributesvalues
GREDRAW_REDRAW EQU 1 ; redraw gadget
GREDRAW_TOGGLE EQU 0 ; toggle highlight, if applicable
; GM_GOACTIVE, GM_HANDLEINPUT
STRUCTURE gpInput,methodid_SIZEOF
APTR gpi_GInfo
APTR gpi_IEvent
APTR gpi_Termination
WORD gpi_MouseX
WORD gpi_MouseY
; (V39) Pointer to TabletData structure, if this event originated
; from a tablet which sends IESUBCLASS_NEWTABLET events, or NULL if
; not.
;
; DO NOT ATTEMPT TO READ THIS FIELD UNDER INTUITION PRIOR TO V39!
; IT WILL BE INVALID!
APTR gpi_TabletData
; GM_HANDLEINPUT and GM_GOACTIVE return code flags
; return GMR_MEACTIVE (0) alone if you want more input.
; Otherwise, return ONE of GMR_NOREUSE and GMR_REUSE, and optionally
; GMR_VERIFY.
; here are the original constant "equates"
GMR_MEACTIVE EQU $0000 ; (bugfix: was $0001 during beta)
GMR_NOREUSE EQU $0002
GMR_REUSE EQU $0004
GMR_VERIFY EQU $0008 ; you MUST set gpi_Termination
* New for V37:
* You can end activation with one of GMR_NEXTACTIVE and GMR_PREVACTIVE,
* which instructs Intuition to activate the next or previous gadget
* that has GFLG_TABCYCLE set.
*
GMR_NEXTACTIVE EQU $0010
GMR_PREVACTIVE EQU $0020
; here are standard bit/flag pairs
GMRB_NOREUSE EQU 1
GMRB_REUSE EQU 2
GMRB_VERIFY EQU 3
GMRB_NEXTACTIVE EQU 4
GMRB_PREVACTIVE EQU 5
GMRF_NOREUSE EQU $0002
GMRF_REUSE EQU $0004
GMRF_VERIFY EQU $0008
GMRF_NEXTACTIVE EQU $0010
GMRF_PREVACTIVE EQU $0020
; GM_GOINACTIVE
STRUCTURE gpGoInactive,methodid_SIZEOF
APTR gpgi_GInfo
* V37 field only! DO NOT attempt to read under V36!
ULONG gpgi_Abort ; gpgi_Abort=1 if gadget was aborted
; by Intuition and 0 if gadget went
; inactive at its own request
* New for V39: Intuition sends GM_LAYOUT to any GREL_ gadget when
* the gadget is added to the window (or when the window opens, if
* the gadget was part of the NewWindow.FirstGadget or the WA_Gadgets
* list), or when the window is resized. Your gadget can set the
* GA_RelSpecial property to get GM_LAYOUT events without Intuition
* changing the interpretation of your gadget select box. This
* allows for completely arbitrary resizing/repositioning based on
* window size.
; GM_LAYOUT
STRUCTURE gpLayout,methodid_SIZEOF
APTR gpl_GInfo
APTR gpl_Initial ; non-zero if this method was invoked
; during AddGList() or OpenWindow()
; time. zero if this method was invoked
; during window resizing.
* Include obsolete identifiers:
IFND INTUITION_IOBSOLETE_I
INCLUDE "intuition/iobsolete.i"
ENDC
ENDC